package utils

import (
	"fmt"
	"net"
	"os"
)

// GetLocalIP
// Title 		GetLocalIP
// Description 	获取本机IP
// Author  		alittlexincan@163.com 			2024/07/22 11:36
// Update 		alittlexincan@163.com 			2024/07/22 11:36
// Return 		[]string 						返回本机IP列表
func GetLocalIP() []string {
	var ip []string
	address, err := net.InterfaceAddrs()
	if err != nil {
		fmt.Println("Error:", err)
		return nil
	}
	for _, addr := range address {
		// 检查是否为 IPNet 类型，并排除回环地址
		if ipNet, ok := addr.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
			// 检查是否为 IPv4 地址
			if ipNet.IP.To4() != nil {
				ip = append(ip, ipNet.IP.String())
			}
		}
	}
	return ip
}

// GetHostName
// Title 		GetHostName
// Description 	获取本机主机名
// Author  		alittlexincan@163.com 			2024/07/22 11:36
// Update 		alittlexincan@163.com 			2024/07/22 11:36
// Return 		string 							返回本机主机名
func GetHostName() string {
	hostname, err := os.Hostname()
	if err != nil {
		fmt.Println("Error:", err)
		return ""
	}
	return hostname
}
